#include <iostream>
#include <vector>
#include <pair>
#include <set>

const int INF = 1000000000;

using namespace std;

class V
{
public:
	V(): d(0), p(0) {}
	int d;
	int idx;
	V *p;
	vector<pair<V,int> > adj;
};

class G
{
	int w(V *u, V *v);
public:
	G() {}
	
	void insv(int idx);
	void inse(int u, int v, int w);
	
	//INITIALIZE-SINGLE-SOURCE
	void iss(V* s);
	
	//RELAX
	void relax(V* u, V* v, int w);
	
	//DIJKSTRA
	void dj();

	vector<V> v;
};

//INITIALIZE-SINGLE-SOURCE
void G::iss(V *idx)
{
	vector<V>::iterator it;
	V *t;
	
	for(it = v.begin(); it != v.end(); it++)
	{
		t = (V*)it;
		t->d = INF;
		t->p = NULL;
	}
	idx->d = 0;
}

int G::w(V *u, V *v)
{
	
}

//RELAX
void G::relax(V* u, V* v)
{
	if(v->d > u->d + w(u, v))
	{
	}
}

int main()
{
	
	return 0;
}
